昨天我們將MongoDB給建立起來了,今天我們來統整一下測試是甚麼? 很重要嗎?
在Mike Cohn 的測試金字塔中,它是由三層組成,我們的測試應該要包含這些測試,從下到上是:
通常是數量最多,執行最快的測試,unit就是一個最小顆粒度、獨立單元的測試。
通常是函數呀、方法、或是某個Class裡面的某個行為,Unit test的目的就是要驗證這些單元的功能是否按照預期來運作。可以幫助我們在新增新的code時,驗證原本的功能有沒有符合預期。
unit test有幾個特性:
單元測試獨立於其他的程式碼,以便能夠單獨運行和驗證單一功能。 這通常需要Mock或test double的依賴項,以確保測試是隔離的。
單元測試是自動化的,可以透過撰寫測試案例和測試框架來執行。這使得測試可以在我們建置和部署過程中自動執行,提高了程式碼的穩定性。
單元測試是可重複的,意思就是每次運行都應該產生相同的結果。這有助於檢測潛在的問題,並使問題更容易診斷和修復。
Service測試的主要目的是驗證服務的功能和行為是否符合預期。這些測試通常是針對業務邏輯的單元測試,但可以包括一些整合測試,以確保各個元件之間的正常。Service測試不涉及UI(使用者介面)或外部相依性(如資料庫、外部API等),而是專注於內部邏輯的測試。
UI測試是指對應用程式的使用者介面(UI)進行測試。UI測試目的是要驗證應用程式的使用者介面是否如預期的工作,使用者可以與應用程式互動並獲得正確的回應。可以手動,也可以自動化執行,這個數量是三者最少的,並且也最花時間。
測試通過不代表我們的code沒有bug,只代表在那個情境下,我們的code符合預期,因此不要有我寫了測試程式就絕對沒有錯的想法XD
https://martinfowler.com/articles/practical-test-pyramid.html